In an email system, email messages are typically generated by users on communications devices such as personal computers (PCs), personal data assistants (PDAs), etc. Once generated, these messages are forwarded to an email delivery server which hosts the users' email accounts. For example, in a corporate environment, a user's communications device may be connected to an email delivery server via a local area network (LAN), while home users may connect to a delivery server of an Internet service provider (ISP) via a dial-up or broadband communications link.
The email delivery server temporarily stores the email messages in a queue for processing and sending to the destination message box (or boxes) associated with the email message. The destination message box is designated by the recipient address the user includes with the email. Presuming that a recipient's message box is not hosted on the email delivery server, the email messages are forwarded via a wide area network (WAN) (e.g., the Internet) to a destination server at which the recipient message box is hosted. The email address associated with the message also designates the appropriate destination server. Once the destination server receives an email message, it stores the email message in the intended recipient's message box.
Sometimes problems arise during this email delivery process. Perhaps the most frequent of these problems is that a recipient's message box is full, in which case the destination server is unable to store new email messages in the message box. In such case, the destination server will typically generate a fatal error message, which is returned to the email delivery server to indicate that the message has not been delivered. Another potential problem is that the destination server is down or otherwise unavailable. In this case, an intermediate server or routing device will generate a temporary failure message, which is also returned to the email delivery server.
The email delivery server sends email messages stored in its queue at a predetermined sending rate (every few minutes, etc.). When a large number of mail delivery failures occur, the queue begins to fill up as users continue to generate more and more messages and the undelivered messages remain in the queue. Not only does this consume large amounts of storage space, but it also consumes significant processing resources as the email delivery server will repeatedly try to send the messages until it no longer receives a failure message.
One prior art approach to alleviating this problem is to implement a secondary queue at the email delivery server, which is sometimes referred to as a spillover or fallback queue. When a delivery failure is received for a particular email message stored in the delivery server's primary queue, the email message is then moved to the secondary queue. The email delivery server may then attempt to send messages stored in the secondary queue at a lower sending rate than the primary queue. This helps conserve system resources in that the email delivery server is not spending as much time trying to re-send the failed messages, and it does not have to access the primary queue as often. Two examples of email server systems which use secondary queues are the Sendmail High Volume Mail Solution (HVMS), and Cisco System's E-mail Manager.
Despite the advantages of such systems, additional flexibility for managing primary and secondary queues of email delivery servers may be desirable in certain applications.